package behavioral.interpreter;

import java.util.ArrayList;
import java.util.List;

/**
 * 动作列表，他是一个非终结符表达式，里面包含了一个动作集合，他继承了抽象表达式
 */
public class ActionListNode extends AbstractNode {

    private List<ActionNode> m_listNode;

    public ActionListNode(Context context) {
        m_listNode = new ArrayList<ActionNode>();

        String strToken = context.nextToken();
        while (!"END".equalsIgnoreCase(strToken)) {
            ActionNode pItemActionNode = new ActionNode(strToken);
            m_listNode.add(pItemActionNode);
            strToken = context.nextToken();
        }
    }

    @Override
    void interpreter(Context context) {
        for (ActionNode pItemNode : m_listNode) {
            pItemNode.interpreter(context);
        }
    }
}
